package com.ynkbny.domain.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ynkbny.domain.Device;
import com.ynkbny.domain.Formula;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 公式表-展示实体
 *
 * @author : YY
 * @date : 2023-8-3
 */
@ApiModel(value = "公式表-展示实体")
@TableName("formula")
@Data
public class FormulaVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 统一社会信用代码 
     */
    @ApiModelProperty(value = "统一社会信用代码")
    @TableField(value = "enterprise_code")
    private String enterpriseCode;
    
    /**
     * 采集数据项编码 
     */
    @ApiModelProperty(value = "采集数据项编码")
    @TableField(value = "data_code")
    private String dataCode;

    /**
     * 采集数据项编码名称
     */
    @ApiModelProperty(value = "采集数据项编码名称")
    @TableField(exist = false)
    private String dataCodeName;
    
    /**
     * 运算符 
     */
    @ApiModelProperty(value = "运算符")
    @TableField(value = "operator")
    private String operator;
    
    /**
     * 参与运算的设备集合
     */
    @ApiModelProperty(value = "参与运算的设备集合")
    private Map<String,DeviceListVO> deviceMap;

    /**
     * 引用的公式集合
     */
    @ApiModelProperty(value = "引用的公式集合")
    private List<FormulaVO> formulaList;

    /**
     * 引用的公式id
     */
    @ApiModelProperty(value = "引用的公式id", example = "")
    @TableField(value = "formula_id")
    private String formulaId;

    /**
     * 参与运算的设备id
     */
    @ApiModelProperty(value = "参与运算的设备", example = "")
    @TableField(value = "device_id_list")
    private String deviceIdList;

    public FormulaVO() {
        this.deviceMap = new HashMap<>();
        this.formulaList = new ArrayList<>();
    }
}